#ifndef ABILITYMOVESTATES_H
#define ABILITYMOVESTATES_H
#include "abilityMoveState.h"

class AbilityMove;

class Normal_Move : public AbilityMoveState
{
private:
  Normal_Move(){}
public:
  static Normal_Move* Instance();
  void enter  (AbilityMove* move);
  void execute(AbilityMove* move);
  void exit   (AbilityMove* move);
};

class No_Move : public AbilityMoveState
{
private:
  No_Move(){}
public:
  static No_Move* Instance();
  void enter  (AbilityMove* move);
  void execute(AbilityMove* move);
  void exit   (AbilityMove* move);
};

class Accelerate_Move : public AbilityMoveState
{
private:
  Accelerate_Move(){}
public:
  static Accelerate_Move* Instance();
  void enter  (AbilityMove* move);
  void execute(AbilityMove* move);
  void exit   (AbilityMove* move);
};

class Decelerate_Move : public AbilityMoveState
{
private:
  Decelerate_Move(){}
public:
  static Decelerate_Move* Instance();
  void enter  (AbilityMove* move);
  void execute(AbilityMove* move);
  void exit   (AbilityMove* move);
};
#endif
